package com.yugao.fintech.draper.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yugao.fintech.draper.admin.entity.SysUser;
import com.yugao.fintech.draper.auth.dto.UserInfoVO;
import com.yugao.fintech.draper.admin.param.UserQuery;
import com.yugao.fintech.draper.admin.param.UserInfo;

public interface UserService extends IService<SysUser> {

	/**
	 * 分页
	 */
	IPage<UserInfoVO> pageQuery(UserQuery userPageDTO);

	/**
	 * 新增用户
	 * @param user user
	 */
	UserInfoVO createUser(UserInfoVO user);

	/**
	 * 修改用户
	 * @param user user
	 */
	void updateUser(UserInfoVO user);

	/**
	 * 修改用户基础信息
	 * @param user user
	 */
	void updateUserInfo(UserInfoVO user);

	/**
	 * 删除用户
	 * @param userIds 用户 id数组
	 */
	void deleteByUserIds(String[] userIds);

	/**
	 * 根据用户id获取用户信息
	 */
	UserInfoVO findUserById(Long id);

	/**
	 * 通过用户名查找用户信息
	 */
	UserInfoVO findByUserName(String username);

	/**
	 * 获取用户全部信息
	 */
	UserInfo findUserInfo(UserInfoVO user);

	/**
	 * 通过手机号查找用户信息
	 * @param mobile 手机号
	 * @return 用户信息
	 */
	UserInfoVO findByMobile(String mobile);

	/**
	 * 获取当前租户下的所有用户数
	 * @return 当前租户下的所有用户数
	 */
	long count();

}
